#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "string.h"
int main(void)
{        
    u8 tmp=0;
    u16 t;  
    u16 len;    
    u16 times=0;
    delay_init();             //延时函数初始化      
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /*设置NVIC中断分组2:2
位抢占优先级，2位响应优先级*/
    uart_init(115200);     //串口初始化为115200
    LED_Init();                 //LED端口初始化
     while(1)
    {
        if(USART_RX_STA&0x8000)
        {                       
            len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
            printf("\r\n您发送的消息为:\r\n\r\n");
            for(t=0;t<len;t++)
            {
                USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);/*等待发送结束*/
            }
            printf("\r\n\r\n");//插入换行    
            if(strlen((const char *)USART_RX_BUF)==1)//长度为1才正确
            {
                tmp= USART_RX_BUF[0];
            }
            else
            {
                tmp= 4;//错误数据，LED0闪烁提示
            }
            USART_RX_STA=0;
        }else
        {
            if(times==0||times%2000==0)
            {    
                printf("\r\nSTM32F103ZET6 串口项目18\r\n\r\n");
                printf("请输入数据,以回车键结束\r\n");  
                printf("0----LED0亮、LED1灭\r\n");  
                printf("1----LED0灭、LED1亮\r\n");  
                printf("2----LED0灭、LED1灭\r\n");  
                printf("3----LED0亮、LED1亮\r\n");  
            }
            times++;
            delay_ms(10);   
        }
        switch(tmp)
        {
            case '0':
                LED0=0;        //LED0亮、LED1灭
                LED1=1; 
                break;
            case '1':
                LED0=1;         //LED0灭、LED1亮
                LED1=0; 
                break;
            case '2':
                LED0=1;         //LED0灭、LED1灭
                LED1=1; 
                break;
            case '3':
                LED0=0;         //LED0亮、LED1亮
                LED1=0; 
                break;
            default:
                LED0=!LED0;//提示系统正在运行    
                delay_ms(200); 
                
    
        }
    }     
}